Lightweight and Generative Components 2: Binary-Level Components
نویسندگان
چکیده
Current \software component" technologies | with one exception | fail to account for lightweight components | those for which a function call is too ineecient or semantically inappropriate | and for generative components | those in which the component embodies a method of constructing code rather than actual code. The exception is the C++ Standard Template Library. It, however, has the disadvantage that components must be delivered largely in source form. In this paper, we present a component technology in which lightweight and generative components can be delivered in binary form. The technology is conceptually simple and is easily implemented with existing programming languages. We start by giving our language a compositional semantics. Call the domain of meanings Code. Since all phrases | even those with free variables | have a meaning, components can be written in the form of macros, but communicated in terms of meanings. In the previous paper, we showed how, as long as the semantics is compositional, higher-order values over Code can be used to write lightweight, generative components. There, we took Code to be string, so our components amounted to higher-order macros. However, keeping components in source form is ineecient and inconvenient: almost all existing component technologies allow for distribution of components in binary form. In this paper, we deene Code as a set of values containing machine-language code, allowing components to be delivered in binary form. Code has additional structure, including register assignment information that permits a simple register allocation scheme to be employed when combining components; thus, components can be loaded dynamically, yet still execute eeciently.
منابع مشابه
Lightweight and Generative Components II: Binary-level Components
Most software component technologies fail to account for lightweight components (those for which a function call is too ineecient or semantically inappropriate) or generative components (those in which the component embodies a method of constructing code rather than actual code). Macro-based systems such as the C++ Standard Template Library are exceptions. They, however, have the disadvantage t...
متن کاملGenerative Binary Components
Most software component technologies fail to account for lightweight components (those for which a function call is too ineecient or semantically inappropriate) or generative components (those in which the component embodies a method of constructing code rather than actual code). Macro-based systems such as the C++ Standard Template Library are exceptions. They, however, have the disadvantage t...
متن کاملLightweight and Generative Components I: Source-Level Components
Current definitions of “software component” are based on abstract data types — collections of functions together with local data. This paper addresses two ways in which this definition is inadequate: it fails to allow for lightweight components — those for which a function call is too inefficient or semantically inappropriate — and it fails to allow for generative components — those in which th...
متن کاملAutomotive Wheel Optimization to Enhance the Fatigue Life
Nowadays, lightweight automotive component design, regarding fuel consumption, environmental pollutants and manufacturing costs, is one of the main issues in the automotive societies. In addition, considering safety reasons, the durability of the automotive components, as one of the most important design requirements should be guaranteed. In this paper, a two-step optimization process including...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000